Gemini で Function Callilng する
天気とかより簡単な時間を分かるようにする
https://gyazo.com/cb9895241a9d61899e615a76d1f20322
シングルターン
どの関数を呼び出すのか返す
マルチターン
chat
時間分かる関数を宣言して渡す
呼び出し自体もこっちでやるのね
レスポンスに function_calling があれば読んで続きを実行する、というふうにする
返り値の構造、なんか名前つけたほうが良いのかなあ
単に 1 とかを返すより {"meaning": 1} を返す、みたいな
あんま変わらなそうだったので気にしない、実際は変わるかも
適当な地名からタイムゾーンを返す関数
関数といいつつ、これも Gemini に聞く
code:guess_timezone
{location} のタイムゾーンは?
タイムゾーンが1つに決まる場合は、以下の JSON 形式のみをレスポンスしてください
{{"offset": <INTEGER_HOUR_UTC_OFFSET>}}
タイムゾーンが1つに決まらない場合は、JSON 形式ではなく候補の都市とオフセットを挙げて聞き返してください
めちゃ嘘付くじゃん
シドニー +10 とかになる
プロンプトで工夫する
code:guess_timezone_v2
location={location} のタイムゾーンを以下のステップで考えてください
location の属する国はどこでしょうか?
location はその国の中のどの地域にありますか?
その地域のタイムゾーンは何でしょうか?
タイムゾーンが1つに決まらない場合は、JSON 形式ではなく、いくつか候補の都市を挙げて聞き返してください
タイムゾーンが1つに決まる場合は、"-------\n" で区ったのち、以下の JSON 形式で UTC offset を返してください
{{"offset": <INTEGER_HOUR_UTC_OFFSET>}}
いい感じ
サマータイム
オーストラリアひどくね?